1. Technical Field
The present disclosure generally relates to synchronization of data across a plurality of repositories and, more particularly, to systems and methods to efficiently synchronize artifact relationships across a plurality of repositories associated with different computer applications or tools.
2. Description of the Related Art
Many different computer applications or tools exist that perform different functions or enable users to perform different operations. As an example, many different tools exist that assist the development of software products by an organization. Each of such software development tools may provide different features, functions, or data representations that are useful for certain aspects or stages of the development process or are useful to different individuals with different roles within the organization. For example, a business analyst may use a first software development tool to perform her functions within the organization while a developer uses a second, different development tool to perform his functions within the organization. Likewise, other individuals with different organizational roles (e.g., testers, deployment, operations, etc.) may use additional tools as well.
Each software development tool may allow users to create and manage artifacts within a repository associated with such software development tool. Each artifact is a representation of an aspect of the development process.
Different software development tools may use different artifact types to represent different aspects of the development process. As an example, a first software development tool may allow the business analyst to generate and manage artifacts that represent epics, features, user stories, requirements, or other business concepts. Likewise, a second software development tool may allow the developer to generate and manage artifacts that represent tasks, defects, or other development concepts. A third software development tool may allow a tester to generate and manage artifacts representative of tests or other testing concepts.
Furthermore, each software development tool may allow users to define and manage relationships between the artifacts contained in the associated repository. The relationships may have different defined relationship types. For example, the business analyst may define that a user story artifact depends upon a particular feature artifact. Such defined relationships may be useful in organizing and performing the development process within each corresponding tool.